package study.递归;

/**
 * 20年Java C组第三题：
 *
 * 如下图所示，小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
 *
 * 1 2 6 7 15 16 28 29...
 *
 * 3 5 8 14 17 27 30...
 *
 * 4 9 13 18 26 31...
 *
 * 10 12 19 25 32...
 *
 * 11 20 24 33...
 *
 * 21 23 34...
 *
 * 22 35...
 *
 * 容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20行第20列的数是多少？
 *
 * - 分析：第20行20列处在45度这条线上。
 *
 * ​     这条线上的数字是：1    5   13   25   41  ........两数之差： 4     8     12   16...
 * 5=1+1*4
 * 13=5+2*4
 * ...
 *
 * ​     每一个都是在前面的基础上+4.可以用递归或者循环。 第n位和n-1位差 (n-1)*4
 *
 * ​    第20行20列相当于这个数列的第20位数字。
 */
public class Demo2 {
    public static void main(String[] args) {
        System.out.println(snack(20));
    }
    public static int snack(int n){
        if(n==1){
            return 1;
        }
        return snack(n-1)+4*(n-1);
    }
}
